This invention relates to a real-time hypervisor.
A virtualization technology for operating a plurality of OSes and a plurality of pieces of application software on one physical computer has been put to practical use. The virtualization technology allows each of physical resources provided to a computer to be virtualized and to be handled as a plurality of logical resources, the physical resources including a central processing unit (CPU), a memory, and input/output (I/O) devices such as a timer device, a general purpose input output (GPIO), a network interface card (NIC), and a host bus adapter (HBA). Through use of the virtualization technology, a plurality of virtual computers, namely, virtual machines, each including virtualized logical resources can be provided on one physical computer, and the OSes and the pieces of application software can be individually operated on those virtual machines.
A mechanism for dividing each of the physical resources of a computer into a plurality of logical resources through use of the virtualization technology is referred to as “logical partitioning (LPAR)”, and a partition obtained by the division through the logical partitioning is referred to as “logical partition”. Firmware or software for providing a virtual machine is referred to as “virtual machine monitor” or “hypervisor”. The hypervisor realizes the logical partitioning of the physical resource through use of software emulation of hardware or a virtualization support mechanism provided to hardware, for example, an input/output memory management unit (IOMMU) or single root input/output virtualization (SR-IOV), and builds a virtual machine including virtualized logical resources within the logical partition. A task, for example, a process or a thread, which is an execution unit of an OS or application software, is executed within a virtual machine built by a hypervisor, that is, within a partition defined through the logical partitioning.
When the virtualization technology is applied to a microcontroller to be used mainly for controlling an apparatus, for example, an inverter or an engine, it is important to ensure the real-time property. The real-time property represents a property relating to actual time control for a system, for example, accuracy of an execution interval for a periodic task or latency of a response to the interrupt issued from an external device. In general, in the virtualization technology, the real-time property is adversely affected by overhead of software emulation or a hardware virtualization support mechanism.
As a technology applicable to the ensurance of the real-time property under a virtualized environment, in US 2009/0210879 A1, there is disclosed a system for distributing a calculation time to the logically divided partitions based on a priority of a process or a thread to be executed within each individual partition.